/**
 * This interface defines the methods necessary to implement while mapping FIR
 * filter
 * 
 * @author kpatel
 */

public interface Interface_FIR_Mapping {

	/**
	 * This method loads coefficients into CFUs from RAM created by the
	 * Create_RAM method. The coefficient loading depends on the - Filter
	 * configuration - Number of CFUs - CFU interconnects - How many channels
	 * going to be processed in parallel
	 */

	void Load_Coefficients_into_CFUs();

	/**
	 * This method loads data into CFUs from RAM created by the Create_RAM
	 * method. The data loading depends on;
	 * - How filter coefficients are loaded into CFU array by 
	 * 	 Load_Coefficients_into_CFUs method 
	 * - Number of CFUs
	 * - CFU interconnects
	 * - How many channels going to be processed in parallel
	 */
	
	void Load_Data_into_CFUs();

	/**
	 * This method configures CFUs before the execution starts
	 */

	void Configure_CFUs();

	/**
	 * This method runs CFUs
	 */
	void Run_CFUs();

	/**
	 * This method collects the final/intermediate outputs from CFUs
	 */
	void Get_Output();

}
